<?php


class Locataire {

    private $id_loca;
    private $nom_loca;
    private $prenom_loca;
    private $num_fix_loca;
    private $num_port_loca;
    private $email_loca;
    private $genre_loca;
    private $adresse_loca;
    private $date_bail_deb_loca;
    private $date_bail_fin_loca;
    private $date_bail_rev_loca;
    private $id_pai;
    private $tab_pers;
    private $type_loca;


    public function __construct($valeur = array()){
        if(!empty($valeur)){
            $this->affecte($valeur);

        }
    }

    public function affecte($donnees){
        foreach ($donnees as  $attribut => $valeur){
            switch($attribut){
                case 'id_loca': $this->setIdLoca($valeur);
                    break;
                case 'nom_loca': $this->setNomLoca($valeur);
                    break;
                case 'prenom_loca': $this->setPrenomLoca($valeur);
                    break;
                case 'num_fix_loca': $this->setNumFixLoca($valeur);
                    break;
                case 'email_loca': $this->seteMailLoca($valeur);
                    break;
                case 'num_port_loca': $this->setNumPortLoca($valeur);
                    break;
                case 'date_bail_deb_loca': $this->setDateBailDebLoca($valeur);
                    break;
                case 'genre_loca' : $this->setGenreLoca($valeur);
                    break;
                case 'adresse_loca': $this->setAdresseLoca($valeur);
                    break;
                case 'date_bail_fin_loca': $this->setDateBailFinLoca($valeur);
                    break;
                case 'date_bail_rev_loca': $this->setDateBailRevLoca($valeur);
                    break;
                case 'date_dern_rev_loca': $this->setDateBailRevLoca($valeur);
                    break;
                case 'id_pai': $this->setIdPai($valeur);
                    break;
                case 'tab_pers': $this->setTabPers($valeur);
                    break;
                case 'type_loca': $this->setTypeLoca($valeur);
                    break;
            }
        }
    }

    /**
     * @param mixed $type_loca
     */
    public function setTypeLoca($type_loca)
    {
        $this->type_loca = $type_loca;
    }

    /**
     * @return mixed
     */
    public function getTypeLoca()
    {
        return $this->type_loca;
    }

    /**
     * @param mixed $tab_pers
     */
    public function setTabPers($tab_pers)
    {
        $this->tab_pers = $tab_pers;
    }

    /**
     * @return mixed
     */
    public function getTabPers()
    {
        return $this->tab_pers;
    }

    /**
     * @param mixed $id_pai
     */
    public function setIdPai($id_pai)
    {
        $this->id_pai = $id_pai;
    }

    /**
     * @return mixed
     */
    public function getIdPai()
    {
        return $this->id_pai;
    }

    /**
     * @param mixed $adresse_loca
     */
    public function setAdresseLoca($adresse_loca)
    {
        $this->adresse_loca = $adresse_loca;
    }

    /**
     * @return mixed
     */
    public function getAdresseLoca()
    {
        return $this->adresse_loca;
    }

    /**
     * @param mixed $date_bail_deb_loca
     */
    public function setDateBailDebLoca($date_bail_deb_loca)
    {
        if(!empty($this->date_bail_fin_loca)){
            LocataireRegle::verifBail($date_bail_deb_loca, $this->getDateBailFinLoca());
        }
        $this->date_bail_deb_loca = $date_bail_deb_loca;
    }

    /**
     * @return mixed
     */
    public function getDateBailDebLoca()
    {
        return $this->date_bail_deb_loca;
    }

    /**
     * @param mixed $date_bail_fin_loca
     */
    public function setDateBailFinLoca($date_bail_fin_loca)
    {
        if(!empty($this->date_bail_deb_loca)){
            LocataireRegle::verifBail($this->getDateBailDebLoca(), $date_bail_fin_loca);
        }

        $this->date_bail_fin_loca = $date_bail_fin_loca;
    }

    /**
     * @return mixed
     */
    public function getDateBailFinLoca()
    {
        return $this->date_bail_fin_loca;
    }

    /**
     * @param mixed $date_bail_rev_loca
     */
    public function setDateBailRevLoca($date_bail_rev_loca)
    {
        $this->date_bail_rev_loca = $date_bail_rev_loca;
    }

    /**
     * @return mixed
     */
    public function getDateBailRevLoca()
    {
        return $this->date_bail_rev_loca;
    }

    /**
     * @param mixed $email_loca
     */
    public function setEmailLoca($email_loca)
    {
        $this->email_loca = $email_loca;
    }

    /**
     * @return mixed
     */
    public function getEmailLoca()
    {
        return $this->email_loca;
    }

    /**
     * @param mixed $genre_loca
     */
    public function setGenreLoca($genre_loca)
    {
        $this->genre_loca = $genre_loca;
    }

    /**
     * @return mixed
     */
    public function getGenreLoca()
    {
        return $this->genre_loca;
    }

    /**
     * @param mixed $id_loca
     */
    public function setIdLoca($id_loca)
    {
        $this->id_loca = $id_loca;
    }

    /**
     * @return mixed
     */
    public function getIdLoca()
    {
        return $this->id_loca;
    }

    /**
     * @param mixed $nom_loca
     */
    public function setNomLoca($nom_loca)
    {
        $this->nom_loca = $nom_loca;
    }

    /**
     * @return mixed
     */
    public function getNomLoca()
    {
        return $this->nom_loca;
    }

    /**
     * @param mixed $num_fix_loca
     */
    public function setNumFixLoca($num_fix_loca)
    {
        $this->num_fix_loca = $num_fix_loca;
    }

    /**
     * @return mixed
     */
    public function getNumFixLoca()
    {
        return $this->num_fix_loca;
    }

    /**
     * @param mixed $num_port_loca
     */
    public function setNumPortLoca($num_port_loca)
    {
        $this->num_port_loca = $num_port_loca;
    }

    /**
     * @return mixed
     */
    public function getNumPortLoca()
    {
        return $this->num_port_loca;
    }

    /**
     * @param mixed $prenom_loca
     */
    public function setPrenomLoca($prenom_loca)
    {
        $this->prenom_loca = $prenom_loca;
    }

    /**
     * @return mixed
     */
    public function getPrenomLoca()
    {
        return $this->prenom_loca;
    }



} 